﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://tempuri.org/vulcan2.xsd" elementFormDefault="qualified" targetNamespace="http://tempuri.org/vulcan2.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="VulcanEngine.IR.Ast.Connection.ConnectionIsolation">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ReadCommitted" />
      <xs:enumeration value="Snapshot" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Connection.ConnectionSecurity">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unchanged" />
      <xs:enumeration value="PasswordRemoved" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Connection.ConnectionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="File" />
      <xs:enumeration value="OleDB" />
      <xs:enumeration value="AdoNet" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Dimension.CardinalityType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OneToOne" />
      <xs:enumeration value="OneToMany" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Dimension.OptionalityType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Mandatory" />
      <xs:enumeration value="Optional" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Dimension.RelationshipType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Rigid" />
      <xs:enumeration value="Flexible" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.ColumnType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AnsiString" />
      <xs:enumeration value="Binary" />
      <xs:enumeration value="Byte" />
      <xs:enumeration value="Boolean" />
      <xs:enumeration value="Currency" />
      <xs:enumeration value="Date" />
      <xs:enumeration value="DateTime" />
      <xs:enumeration value="Decimal" />
      <xs:enumeration value="Double" />
      <xs:enumeration value="Guid" />
      <xs:enumeration value="Int16" />
      <xs:enumeration value="Int32" />
      <xs:enumeration value="Int64" />
      <xs:enumeration value="Object" />
      <xs:enumeration value="SByte" />
      <xs:enumeration value="Single" />
      <xs:enumeration value="String" />
      <xs:enumeration value="Time" />
      <xs:enumeration value="UInt16" />
      <xs:enumeration value="UInt32" />
      <xs:enumeration value="UInt64" />
      <xs:enumeration value="VarNumeric" />
      <xs:enumeration value="AnsiStringFixedLength" />
      <xs:enumeration value="StringFixedLength" />
      <xs:enumeration value="Xml" />
      <xs:enumeration value="DateTime2" />
      <xs:enumeration value="DateTimeOffset" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Table.IndexColumnSortOrder">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Asc" />
      <xs:enumeration value="Desc" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Table.KeyColumnSortOrder">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Asc" />
      <xs:enumeration value="Desc" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.ContainerTransactionMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Join" />
      <xs:enumeration value="StartOrJoin" />
      <xs:enumeration value="NoTransaction" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.ProtectionLevel">
  <xs:restriction base="xs:string">
      <xs:enumeration value="DontSaveSensitive" />
      <xs:enumeration value="EncryptSensitiveWithPassword" />
	  <xs:enumeration value="EncryptSensitiveWithUserKey" />
	  <xs:enumeration value="EncryptAllWithPassword" />
	  <xs:enumeration value="EncryptAllWithUserKey" />
	  <xs:enumeration value="ServerStorage" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.ContainerConstraintMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Linear" />
      <xs:enumeration value="Parallel" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.ExecuteSqlResultSet">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="SingleRow" />
      <xs:enumeration value="Full" />
      <xs:enumeration value="Xml" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.PlatformType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Ssis05" />
      <xs:enumeration value="Ssis08" />
      <xs:enumeration value="Metl" />
      <xs:enumeration value="Debug" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.DestinationAccessModeFacet">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Table" />
      <xs:enumeration value="TableFastLoad" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.SortComparisonFlag">
    <xs:restriction base="xs:string">
      <xs:enumeration value="IgnoreCase" />
      <xs:enumeration value="IgnoreKanaType" />
      <xs:enumeration value="IgnoreNonspacingCharacters" />
      <xs:enumeration value="IgnoreCharacterWidth" />
      <xs:enumeration value="IgnoreSymbols" />
      <xs:enumeration value="SortPunctuationAsSymbols" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.SortOrder">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Asc" />
      <xs:enumeration value="Desc" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.SortColumnUsageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Passthrough" />
      <xs:enumeration value="DoNotPassthrough" />
      <xs:enumeration value="SortColumn" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.XmlSourceDataAccessMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="XmlFileLocation" />
      <xs:enumeration value="XmlFileFromVariable" />
      <xs:enumeration value="XmlDataFromVariable" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.AstTermLookupInputUsageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Lookup" />
      <xs:enumeration value="Passthrough" />
      <xs:enumeration value="LookupAndPassthrough" />
      <xs:enumeration value="DoNotPassthrough" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.TermLookupColumnUsageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Passthrough" />
      <xs:enumeration value="Lookup" />
      <xs:enumeration value="BothPassthroughAndLookup" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasDataMimeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ImageGif" />
      <xs:enumeration value="ImageJpeg" />
      <xs:enumeration value="None" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasDataFormat">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasCollation">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Preserve" />
      <xs:enumeration value="Remove" />
      <xs:enumeration value="Replace" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasNullProcessing">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Error" />
      <xs:enumeration value="ZeroOrBlank" />
      <xs:enumeration value="Automatic" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasMeasureFormat">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Standard" />
      <xs:enumeration value="Currency" />
      <xs:enumeration value="Percent" />
      <xs:enumeration value="ShortDate" />
      <xs:enumeration value="LongDate" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasTrimming">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Left" />
      <xs:enumeration value="Right" />
      <xs:enumeration value="LeftRight" />
      <xs:enumeration value="None" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasAggregationFunction">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Sum" />
      <xs:enumeration value="Count" />
      <xs:enumeration value="Min" />
      <xs:enumeration value="Max" />
      <xs:enumeration value="DistinctCount" />
      <xs:enumeration value="None" />
      <xs:enumeration value="ByAccount" />
      <xs:enumeration value="AverageOfChildren" />
      <xs:enumeration value="FirstChild" />
      <xs:enumeration value="LastChild" />
      <xs:enumeration value="FirstNonempty" />
      <xs:enumeration value="LastNonempty" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasOptimizedState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="FullyOptimized" />
      <xs:enumeration value="NotOptimized" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.AllMemberAggregationUsage">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Full" />
      <xs:enumeration value="None" />
      <xs:enumeration value="Unrestricted" />
      <xs:enumeration value="Default" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.HierarchyUniqueNameStyle">
    <xs:restriction base="xs:string">
      <xs:enumeration value="IncludeDimensionName" />
      <xs:enumeration value="ExcludeDimensionName" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.MemberUniqueNameStyle">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Native" />
      <xs:enumeration value="NamePath" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasErrorConfiguration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Default" />
      <xs:enumeration value="Custom" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.ProcessingMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Regular" />
      <xs:enumeration value="LazyAggregations" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.StorageMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Rolap" />
      <xs:enumeration value="Molap" />
      <xs:enumeration value="Holap" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Measure.MeasureGroupType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Regular" />
      <xs:enumeration value="ExchangeRate" />
      <xs:enumeration value="Sales" />
      <xs:enumeration value="Budget" />
      <xs:enumeration value="FinancialReporting" />
      <xs:enumeration value="Marketing" />
      <xs:enumeration value="Inventory" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.DataAggregation">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="DataAggregatable" />
      <xs:enumeration value="CacheAggregatable" />
      <xs:enumeration value="DataAndCacheAggregatable" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasOrderBy">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Key" />
      <xs:enumeration value="Name" />
      <xs:enumeration value="AttributeKey" />
      <xs:enumeration value="AttributeName" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasAttributeUsage">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Regular" />
      <xs:enumeration value="Key" />
      <xs:enumeration value="Parent" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Cube.SsasColumnDataFormat">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.AnnotationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CodeComment" />
      <xs:enumeration value="Documentation" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Connection.NetworkProtocol">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Shared" />
      <xs:enumeration value="Tcp" />
      <xs:enumeration value="Pipes" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.AuthenticationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Windows" />
      <xs:enumeration value="Sql" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Table.PrincipalType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ApplicationRole" />
      <xs:enumeration value="DBRole" />
      <xs:enumeration value="WindowsUser" />
      <xs:enumeration value="WindowsGroup" />
      <xs:enumeration value="SqlUser" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Table.ScdType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Error" />
      <xs:enumeration value="Update" />
      <xs:enumeration value="Historical" />
      <xs:enumeration value="Key" />
      <xs:enumeration value="Other" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.ScdColumnMappingType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ChangingAttribute" />
      <xs:enumeration value="FixedAttribute" />
      <xs:enumeration value="HistoricalAttribute" />
      <xs:enumeration value="Key" />
      <xs:enumeration value="Other" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.PermissionActionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Grant" />
      <xs:enumeration value="Deny" />
      <xs:enumeration value="Revoke" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.PermissionTargetType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Select" />
      <xs:enumeration value="Update" />
      <xs:enumeration value="References" />
      <xs:enumeration value="Insert" />
      <xs:enumeration value="Delete" />
      <xs:enumeration value="Alter" />
      <xs:enumeration value="ViewChangeTracking" />
      <xs:enumeration value="ViewDefinition" />
      <xs:enumeration value="TakeOwnership" />
      <xs:enumeration value="Control" />
      <xs:enumeration value="All" />
      <xs:enumeration value="Execute" />
      <xs:enumeration value="Read" />
      <xs:enumeration value="Write" />
      <xs:enumeration value="ReadDefinition" />
      <xs:enumeration value="ReadSourceData" />
      <xs:enumeration value="Process" />
      <xs:enumeration value="Administer" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.LogicalOperationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="And" />
      <xs:enumeration value="Or" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.TaskEvaluationOperationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Constraint" />
      <xs:enumeration value="Expression" />
      <xs:enumeration value="ExpressionAndConstraint" />
      <xs:enumeration value="ExpressionOrConstraint" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.TaskEvaluationOperationValue">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Success" />
      <xs:enumeration value="Failure" />
      <xs:enumeration value="Completion" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.EventType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnError" />
      <xs:enumeration value="OnExecStatusChanged" />
      <xs:enumeration value="OnInformation" />
      <xs:enumeration value="OnPostExecute" />
      <xs:enumeration value="OnPostValidate" />
      <xs:enumeration value="OnPreExecute" />
      <xs:enumeration value="OnPreValidate" />
      <xs:enumeration value="OnProgress" />
      <xs:enumeration value="OnQueryCancel" />
      <xs:enumeration value="OnTaskFailed" />
      <xs:enumeration value="OnVariableValueChanged" />
      <xs:enumeration value="OnWarning" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.Direction">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Input" />
      <xs:enumeration value="Output" />
      <xs:enumeration value="ReturnValue" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition">
    <xs:restriction base="xs:string">
      <xs:enumeration value="IgnoreFailure" />
      <xs:enumeration value="RedirectRow" />
      <xs:enumeration value="FailComponent" />
      <xs:enumeration value="NotUsed" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.IsolationLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Unspecified" />
      <xs:enumeration value="Chaos" />
      <xs:enumeration value="ReadUncommitted" />
      <xs:enumeration value="ReadCommitted" />
      <xs:enumeration value="RepeatableRead" />
      <xs:enumeration value="Serializable" />
      <xs:enumeration value="Snapshot" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Transformation.CacheMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Full" />
      <xs:enumeration value="Partial" />
      <xs:enumeration value="None" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.QueryType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Expression" />
      <xs:enumeration value="Standard" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Task.MergeColumnUsage">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Compare" />
      <xs:enumeration value="Update" />
      <xs:enumeration value="Insert" />
      <xs:enumeration value="CompareUpdate" />
      <xs:enumeration value="CompareInsert" />
      <xs:enumeration value="UpdateInsert" />
      <xs:enumeration value="CompareUpdateInsert" />
      <xs:enumeration value="Exclude" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VulcanEngine.IR.Ast.Table.TableCompressionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="Row" />
      <xs:enumeration value="Page" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstNamedNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstAnnotationNode_AstNode_Annotations_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Annotation" type="VulcanEngine.IR.Ast.AstAnnotationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstAnnotationNode">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="AnnotationType" type="VulcanEngine.IR.Ast.AnnotationType" use="required">
          <xs:annotation>
            <xs:documentation>Specifies the AnnotationType</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Connection.AstConnectionNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="RetainSameConnection" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.Connection.ConnectionType" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the type of source that is being connected to.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Server" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Windows" name="Authentication" type="VulcanEngine.IR.Ast.AuthenticationType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Login" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Password" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Database" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="AdditionalParameters" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Protocol" type="VulcanEngine.IR.Ast.Connection.NetworkProtocol" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Provider" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PersistSecurityInfo" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="FilePath" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ProtectionLevel" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MarsConnection" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectTimeout" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MaxActiveConnections" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionSecurity" type="VulcanEngine.IR.Ast.Connection.ConnectionSecurity" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionIsolation" type="VulcanEngine.IR.Ast.Connection.ConnectionIsolation" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstDimensionNamedBaseNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="KeyColumns" type="AstAttributeKeyColumnNode_AstAttributeNode_KeyColumns_List">
        <xs:annotation>
          <xs:documentation>Specifies the names of the physical columns from the underlying SQL Server table that define the key and granularity for the attribute.  The value of this column for each member is displayed to users unless a value is specified for the NameColumn property.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="NameColumn" type="VulcanEngine.IR.Ast.Dimension.AstAttributeNameColumnNode">
        <xs:annotation>
          <xs:documentation>Indicates the column that provides the display name of the attribute. This column displays an easily comprehensible name to users when the key column value for an attribute member is cryptic or not useful, or when the key column is based on a composite key. The NameColumn property is not used in parent-child hierarchies.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="ValueColumn" type="VulcanEngine.IR.Ast.Dimension.AstAttributeValueColumnNode">
        <xs:annotation>
          <xs:documentation>Indicates the column that provides the value of the attribute. When the NameColumn element is specified, the same DataItem values are used as default values for the ValueColumn element. When the NameColumn element is not specified and the KeyColumns collection contains an element representing a key column with a string data type, the same DataItem values are used as default values for the ValueColumn element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Regular" name="Usage" type="VulcanEngine.IR.Ast.Cube.SsasAttributeUsage" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates how an attribute is used. The default setting is Regular. Other possible settings are Key and Parent.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Key" name="OrderBy" type="VulcanEngine.IR.Ast.Cube.SsasOrderBy" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the OrderBy</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="OrderByAttributeName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Defines the ordering of the members contained in the attribute hierarchy. The default setting is Name, indicating that ordering of the attribute members is based on the value of the NameColumn property. If the NameColumn property is left undefined, members are ordered by the value of the Key column. The Key setting indicates ordering by the value of the key column of the attribute member. The AttributeKey setting indicates ordering by the value of the member key of a specified attribute. The AttributeName setting indicates ordering by the value of the member name of a specified attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="MemberNameUnique" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether or not member names in the attribute hierarchy must be unique.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="EstimatedCount" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates the estimated number of items in the attribute. The default setting is zero.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="IsAggregatable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the values of the attribute members can be aggregated. The default setting is True, which causes the attribute hierarchy to contain an (All) level. If the setting is changed to False, the attribute hierarchy does not contain an (All) level.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="AttributeHierarchyEnabled" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether an attribute hierarchy will be generated by SQL Server Analysis Services. When attribute hierarchy is not enabled, the attribute cannot be employed in a user-defined hierarchy, and the attribute hierarchy cannot be referenced in MDX statements.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="AttributeHierarchyOrdered" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the attribute hierarchy is ordered. The default setting is True. If an attribute hierarchy will not be used for querying, processing time is improved by changing the setting to False.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="FullyOptimized" name="AttributeHierarchyOptimizedState" type="VulcanEngine.IR.Ast.Cube.SsasOptimizedState" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates the level of optimization applied to the attribute hierarchy. Selecting the default option will cause the attribute hierarchy to be fully optimized, and SQL Server Analysis Services will build indexes for the attribute hierarchy to enhance query performance. Selecting NotOptimized will mean that no indexes are built for the attribute hierarchy. Choose this option if the attribute hierarchy is not intended for querying, but for another purpose such as the ordering of another attribute hierarchy.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="AttributeHierarchyVisible" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether or not the attribute hierarchy is visible to client applications. The default setting is True. If the attribute hierarchy is not intended for querying but for another purpose, such as the ordering of another attribute hierarchy, processing time is improved by changing the setting to False.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="AttributeHierarchyDisplayFolder" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Denotes the folder where the associated attribute hierarchy is displayed to end users.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstAttributeKeyColumnNode_AstAttributeNode_KeyColumns_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="KeyColumn" type="VulcanEngine.IR.Ast.Dimension.AstAttributeKeyColumnNode">
        <xs:annotation>
          <xs:documentation>Specifies the names of the physical columns from the underlying SQL Server table that define the key and granularity for the attribute.  The value of this column for each member is displayed to users unless a value is specified for the NameColumn property.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeKeyColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="None" name="DataMimeType" type="VulcanEngine.IR.Ast.Cube.SsasDataMimeType" use="optional">
      <xs:annotation>
        <xs:documentation>Where applicable, specifies the Multipurpose Internet Mail Extensions (MIME) type of the data represented by the parent DataItem element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataFormat" type="VulcanEngine.IR.Ast.Cube.SsasDataFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the formatting requirements of the DataItem element. The default setting is “none.” Allowed settings are Microsoft Excel formats and the string values TrimRight, TrimLeft, TrimAll, and TrimNone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Collation" type="VulcanEngine.IR.Ast.Cube.SsasCollation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the collation method used by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Right" name="Trimming" type="VulcanEngine.IR.Ast.Cube.SsasTrimming" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how data from the data source will be trimmed. The default setting is Right. Other allowed settings are Left, LeftRight, and None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Preserve" name="InvalidXMLCharacterProcessing" type="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Determines how invalid XML characters in the source data will be handled. Preserve retains the character, Remove deletes them, and Replace inserts a question mark (?) in the place of each invalid character.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Automatic" name="NullProcessing" type="VulcanEngine.IR.Ast.Cube.SsasNullProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how null values will be processed. The default setting is Automatic. Other allowed settings are Preserve (which preserves the null value), Error (which generates a null key error, UnknownMember (which generates an unknown member as well as a null conversion error) and ZeroOrBlank (which converts the null value to zero in numeric data items, and a blank string in string data items).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeNameColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="None" name="DataMimeType" type="VulcanEngine.IR.Ast.Cube.SsasDataMimeType" use="optional">
      <xs:annotation>
        <xs:documentation>Where applicable, specifies the Multipurpose Internet Mail Extensions (MIME) type of the data represented by the parent DataItem element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataFormat" type="VulcanEngine.IR.Ast.Cube.SsasDataFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the formatting requirements of the DataItem element. The default setting is “none.” Allowed settings are Microsoft Excel formats and the string values TrimRight, TrimLeft, TrimAll, and TrimNone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Collation" type="VulcanEngine.IR.Ast.Cube.SsasCollation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the collation method used by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Right" name="Trimming" type="VulcanEngine.IR.Ast.Cube.SsasTrimming" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how data from the data source will be trimmed. The default setting is Right. Other allowed settings are Left, LeftRight, and None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Preserve" name="InvalidXMLCharacterProcessing" type="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Determines how invalid XML characters in the source data will be handled. Preserve retains the character, Remove deletes them, and Replace inserts a question mark (?) in the place of each invalid character.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Automatic" name="NullProcessing" type="VulcanEngine.IR.Ast.Cube.SsasNullProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how null values will be processed. The default setting is Automatic. Other allowed settings are Preserve (which preserves the null value), Error (which generates a null key error, UnknownMember (which generates an unknown member as well as a null conversion error) and ZeroOrBlank (which converts the null value to zero in numeric data items, and a blank string in string data items).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeValueColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="None" name="DataMimeType" type="VulcanEngine.IR.Ast.Cube.SsasDataMimeType" use="optional">
      <xs:annotation>
        <xs:documentation>Where applicable, specifies the Multipurpose Internet Mail Extensions (MIME) type of the data represented by the parent DataItem element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataFormat" type="VulcanEngine.IR.Ast.Cube.SsasDataFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the formatting requirements of the DataItem element. The default setting is “none.” Allowed settings are Microsoft Excel formats and the string values TrimRight, TrimLeft, TrimAll, and TrimNone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Collation" type="VulcanEngine.IR.Ast.Cube.SsasCollation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the collation method used by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Right" name="Trimming" type="VulcanEngine.IR.Ast.Cube.SsasTrimming" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how data from the data source will be trimmed. The default setting is Right. Other allowed settings are Left, LeftRight, and None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Preserve" name="InvalidXMLCharacterProcessing" type="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Determines how invalid XML characters in the source data will be handled. Preserve retains the character, Remove deletes them, and Replace inserts a question mark (?) in the place of each invalid character.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Automatic" name="NullProcessing" type="VulcanEngine.IR.Ast.Cube.SsasNullProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how null values will be processed. The default setting is Automatic. Other allowed settings are Preserve (which preserves the null value), Error (which generates a null key error, UnknownMember (which generates an unknown member as well as a null conversion error) and ZeroOrBlank (which converts the null value to zero in numeric data items, and a blank string in string data items).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeRelationshipNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="Visible" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies whether or not the parent element is visible. The default setting is True.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ParentAttributeName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the name of the parent attribute for the specified relationship.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ChildAttributeName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the name of the child attribute for the specified relationship.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Flexible" name="Type" type="VulcanEngine.IR.Ast.Dimension.RelationshipType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="OneToMany" name="Cardinality" type="VulcanEngine.IR.Ast.Dimension.CardinalityType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the cardinality of the relationship described by an AttributeRelationship or RegularMeasureGroupDimension. Allowed values are Many (indicating a many-to-one relationship) and One (indicating a one-to-one relationship).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Mandatory" name="Optionality" type="VulcanEngine.IR.Ast.Dimension.OptionalityType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies whether relationships between members of the related attribute are Mandatory or Optional.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstDimensionHierarchyLevelNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="AttributeName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies referenced attribute name</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstDimensionHierarchyNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Levels" type="AstDimensionHierarchyLevelNode_AstDimensionHierarchyNode_Levels_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDimensionHierarchyLevelNode_AstDimensionHierarchyNode_Levels_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Level" type="VulcanEngine.IR.Ast.Dimension.AstDimensionHierarchyLevelNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableIndexNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableIndexColumnNode_AstTableIndexNode_Columns_List">
        <xs:annotation>
          <xs:documentation>Specifies referenced key column names.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Leafs" type="AstTableIndexLeafNode_AstTableIndexNode_Leafs_List">
        <xs:annotation>
          <xs:documentation>Specifies Leafs.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="PadIndex" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies PadIndex.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="SortInTempdb" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies SortInTempDB.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DropExisting" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies DropExisting.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IgnoreDupKey" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies IgnoreDupKey.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Online" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Online.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Clustered" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Clustered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Unique" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Unique.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableIndexColumnNode_AstTableIndexNode_Columns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Table.AstTableIndexColumnNode">
        <xs:annotation>
          <xs:documentation>Specifies referenced key column names.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableIndexColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Asc" name="SortOrder" type="VulcanEngine.IR.Ast.Table.IndexColumnSortOrder" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies SortOrder.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableIndexLeafNode_AstTableIndexNode_Leafs_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Leaf" type="VulcanEngine.IR.Ast.Table.AstTableIndexLeafNode">
        <xs:annotation>
          <xs:documentation>Specifies Leafs.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableIndexLeafNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableIdentityNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableKeyColumnNode_AstTableKeyBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation>Specifies ColumnNames</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="1" name="Seed" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Seed</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="1" name="Increment" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Increment</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="PadIndex" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies PadIndex.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IgnoreDupKey" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies IgnoreDupKey.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Clustered" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Clustered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Unique" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Unique.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableKeyColumnNode_AstTableKeyBaseNode_Columns_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Table.AstTableKeyColumnNode">
        <xs:annotation>
          <xs:documentation>Specifies ColumnNames</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableKeyColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Asc" name="SortOrder" type="VulcanEngine.IR.Ast.Table.KeyColumnSortOrder" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTablePrimaryKeyNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableKeyColumnNode_AstTableKeyBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation>Specifies ColumnNames</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="PadIndex" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies PadIndex.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IgnoreDupKey" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies IgnoreDupKey.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Clustered" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Clustered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Unique" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Unique.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableUniqueKeyNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableKeyColumnNode_AstTableKeyBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation>Specifies ColumnNames</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="PadIndex" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies PadIndex.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IgnoreDupKey" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies IgnoreDupKey.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="Clustered" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Clustered.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Unique" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Unique.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableLookupBaseNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableCustomLookupNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Transformations" type="AstTransformationNode_AstTableCustomLookupNode_Transformations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTransformationNode_AstTableCustomLookupNode_Transformations_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Lookup" type="VulcanEngine.IR.Ast.Transformation.AstLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="XmlSource" type="VulcanEngine.IR.Ast.Transformation.AstXmlSourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DerivedColumns" type="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnListNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Destination" type="VulcanEngine.IR.Ast.Transformation.AstDestinationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IsNullPatcher" type="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OleDBCommand" type="VulcanEngine.IR.Ast.Transformation.AstOleDBCommandNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Sort" type="VulcanEngine.IR.Ast.Transformation.AstSortNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermLookup" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConditionalSplit" type="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MultiCast" type="VulcanEngine.IR.Ast.Transformation.AstMulticastNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UnionAll" type="VulcanEngine.IR.Ast.Transformation.AstUnionAllNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuerySource" type="VulcanEngine.IR.Ast.Transformation.AstQuerySourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstLookupNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Query" type="VulcanEngine.IR.Ast.Task.AstQueryNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Inputs" type="AstLookupInputOutputNode_AstLookupNode_Inputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Outputs" type="AstLookupInputOutputNode_AstLookupNode_Outputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="OnDemandLookupQuery" type="VulcanEngine.IR.Ast.Transformation.AstOnDemandLookupQueryNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstQueryNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Standard" name="QueryType" type="VulcanEngine.IR.Ast.Task.QueryType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstVariableParameterMappingQueryNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Parameters" type="AstVariableParameterMappingNode_AstVariableParameterMappingQueryNode_Parameters_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Standard" name="QueryType" type="VulcanEngine.IR.Ast.Task.QueryType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstVariableParameterMappingNode_AstVariableParameterMappingQueryNode_Parameters_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Parameter" type="VulcanEngine.IR.Ast.Task.AstVariableParameterMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstVariableParameterMappingNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="VariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstExecuteSqlParameterMappingTypeNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Direction" type="VulcanEngine.IR.Ast.Task.Direction" use="required">
      <xs:annotation>
        <xs:documentation>Speficies whether the direction of the parameter is an input, an output, or a return value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the length of the mapped parameter value.  This property only applies to parameters that support a length modifier, such as string or binary types.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="VariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstExecuteSqlQueryNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Parameters" type="AstExecuteSqlParameterMappingTypeNode_AstExecuteSqlQueryNode_Parameters_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Standard" name="QueryType" type="VulcanEngine.IR.Ast.Task.QueryType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstExecuteSqlParameterMappingTypeNode_AstExecuteSqlQueryNode_Parameters_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Parameter" type="VulcanEngine.IR.Ast.Task.AstExecuteSqlParameterMappingTypeNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstOnDemandLookupQueryNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Parameters" type="AstUnboundParameterMappingNode_AstOnDemandLookupQueryNode_Parameters_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="25" name="CacheSize" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CacheMode" type="VulcanEngine.IR.Ast.Transformation.CacheMode" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Standard" name="QueryType" type="VulcanEngine.IR.Ast.Task.QueryType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstUnboundParameterMappingNode_AstOnDemandLookupQueryNode_Parameters_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Parameter" type="VulcanEngine.IR.Ast.Task.AstUnboundParameterMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstUnboundParameterMappingNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TargetName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstTransformationMappedQueryNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Mappings" type="AstDataflowColumnMappingNode_AstTransformationMappedQueryNode_Mappings_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="Standard" name="QueryType" type="VulcanEngine.IR.Ast.Task.QueryType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowColumnMappingNode_AstTransformationMappedQueryNode_Mappings_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Mapping" type="VulcanEngine.IR.Ast.Transformation.AstDataflowColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDataflowColumnMappingNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="SourceName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="TargetName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstLookupInputOutputNode_AstLookupNode_Inputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Input" type="VulcanEngine.IR.Ast.Transformation.AstLookupInputOutputNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstLookupInputOutputNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="LocalColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="RemoteColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstLookupInputOutputNode_AstLookupNode_Outputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Output" type="VulcanEngine.IR.Ast.Transformation.AstLookupInputOutputNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Mappings" type="AstDataflowColumnMappingNode_AstDataflowMappedInputPathNode_Mappings_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="OutputPathName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowColumnMappingNode_AstDataflowMappedInputPathNode_Mappings_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Mapping" type="VulcanEngine.IR.Ast.Transformation.AstDataflowColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstXmlSourceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="OutputPaths" type="AstDataflowOutputPathNode_AstXmlSourceNode_OutputPaths_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="XmlData" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="XmlSchemaDefinition" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="UseInlineSchema" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="XmlDataAccessMode" type="VulcanEngine.IR.Ast.Transformation.XmlSourceDataAccessMode" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowOutputPathNode_AstXmlSourceNode_OutputPaths_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="OutputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowOutputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDataflowOutputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitOutputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Expression" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnListNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstDerivedColumnNode_AstDerivedColumnListNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDerivedColumnNode_AstDerivedColumnListNode_Columns_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnNode">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="required">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute default="-1" name="Codepage" type="xs:integer" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute default="false" name="ReplaceExisting" type="xs:boolean" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDestinationNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Mappings" type="AstDataflowColumnMappingNode_AstDestinationNode_Mappings_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Table" name="AccessMode" type="VulcanEngine.IR.Ast.Transformation.DestinationAccessModeFacet" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="TableLock" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="CheckConstraints" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="KeepIdentity" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="KeepNulls" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="RowsPerBatch" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MaximumInsertCommitSize" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DisableScd" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowColumnMappingNode_AstDestinationNode_Mappings_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Mapping" type="VulcanEngine.IR.Ast.Transformation.AstDataflowColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstIsNullPatcherColumnNode_AstIsNullPatcherNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstIsNullPatcherColumnNode_AstIsNullPatcherNode_Columns_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherColumnNode">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="Name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstOleDBCommandNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Query" type="VulcanEngine.IR.Ast.Transformation.AstTransformationMappedQueryNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstSortNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="InputColumns" type="AstSortColumnNode_AstSortNode_InputColumns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="AutoPassThrough" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="EliminateDuplicates" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies EliminateDuplicates</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MaximumThreads" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstSortColumnNode_AstSortNode_InputColumns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="InputColumn" type="VulcanEngine.IR.Ast.Transformation.AstSortColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstSortColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="ComparisonFlags" type="SortComparisonFlag_AstSortColumnNode_ComparisonFlags_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="InputColumnUsageType" type="VulcanEngine.IR.Ast.Transformation.SortColumnUsageType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SortOrder" type="VulcanEngine.IR.Ast.Transformation.SortOrder" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="OutputAs" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="SortComparisonFlag_AstSortColumnNode_ComparisonFlags_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="ComparisonFlag" type="VulcanEngine.IR.Ast.Transformation.SortComparisonFlag">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstTermLookupNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="InputColumns" type="AstTermLookupColumnNode_AstTermLookupNode_InputColumns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="AutoPassThrough" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsCaseSensitive" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="RefTermColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="RefTermTableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTermLookupColumnNode_AstTermLookupNode_InputColumns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstTermLookupColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="OutputAs" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="InputColumnUsageType" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupInputUsageType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="OutputPaths" type="AstConditionalSplitOutputPathNode_AstConditionalSplitNode_OutputPaths_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="DefaultOutputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowOutputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstConditionalSplitOutputPathNode_AstConditionalSplitNode_OutputPaths_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="OutputPath" type="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitOutputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstMulticastNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="OutputPaths" type="AstDataflowOutputPathNode_AstMulticastNode_OutputPaths_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowOutputPathNode_AstMulticastNode_OutputPaths_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="OutputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowOutputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstUnionAllNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="InputPaths" type="AstDataflowMappedInputPathNode_AstMultipleInTransformationNode_InputPaths_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstDataflowMappedInputPathNode_AstMultipleInTransformationNode_InputPaths_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstQuerySourceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Query" type="VulcanEngine.IR.Ast.Task.AstVariableParameterMappingQueryNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableKeyLookupNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="KeyName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableStaticSourceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Rows" type="AstStaticSourceRowNode_AstTableStaticSourceNode_Rows_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="EmitMergePackage" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstStaticSourceRowNode_AstTableStaticSourceNode_Rows_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Row" type="VulcanEngine.IR.Ast.Table.AstStaticSourceRowNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstStaticSourceRowNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="ColumnValues" type="AstStaticSourceColumnValueNode_AstStaticSourceRowNode_ColumnValues_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="AstStaticSourceColumnValueNode_AstStaticSourceRowNode_ColumnValues_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="ColumnValue" type="VulcanEngine.IR.Ast.Table.AstStaticSourceColumnValueNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstStaticSourceColumnValueNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Value" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstPrincipalNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.Table.PrincipalType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Emit" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Fact.AstMeasureNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:string">
        <xs:annotation>
          <xs:documentation>Contains an MDX expression that specifies the contents of the parent element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="Visible" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the visibility of the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ForeColorExpression" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the color-related display properties of the CalculationProperty or Measure parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="BackColorExpression" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the color-related display properties of the CalculationProperty parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="FontSizeExpression" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the font-related display properties of the CalculationProperty or Measure parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="FontFlagsExpression" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the font-related display characteristics of the CalculationProperty or Measure parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataMimeType" type="VulcanEngine.IR.Ast.Cube.SsasDataMimeType" use="optional">
      <xs:annotation>
        <xs:documentation>Where applicable, specifies the Multipurpose Internet Mail Extensions (MIME) type of the data represented by the DataItem element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataFormat" type="VulcanEngine.IR.Ast.Cube.SsasDataFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the formatting requirements of the DataItem element. The default setting is �none.� Allowed settings are Microsoft Excel formats and the string values TrimRight, TrimLeft, TrimAll, and TrimNone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Collation" type="VulcanEngine.IR.Ast.Cube.SsasCollation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the collation method used by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="Trimming" type="VulcanEngine.IR.Ast.Cube.SsasTrimming" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how data from the data source is trimmed. The default setting is Right. Other allowed settings are Left, RightLeft and None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="InvalidXmlCharacterProcessing" type="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Determines how invalid XML characters in the source data will be handled. Preserve retains the character, Remove deletes them, and Replace inserts the (?) in the place of each invalid character.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="NullProcessing" type="VulcanEngine.IR.Ast.Cube.SsasNullProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how null values will be processed. The default setting is Automatic. Other allowed settings are Preserve (which preserves the null value), Error (which generates a null key error, UnknownMember (which generates an unknown member as well as a null conversion error) and ZeroOrBlank (which converts the null value to zero in numeric data items, and a blank string in string data items).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MeasureFormat" type="VulcanEngine.IR.Ast.Cube.SsasMeasureFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how the data item will be displayed. Allowed values include percent, decimal, comma separated digits, and arbitrary format string.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DisplayFolder" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the folder in which the parent element is listed. The default setting is None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="AggregateColumnName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Sum" name="AggregateFunction" type="VulcanEngine.IR.Ast.Cube.SsasAggregationFunction" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskflowOutputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstVariableNode_AstContainerTaskNode_Variables_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Variable" type="VulcanEngine.IR.Ast.Task.AstVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstVariableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TypeCode" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Value" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="EvaluateAsExpression" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="InheritFromPackageParent" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="InheritFromPackageParentConfigurationString" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Staging" type="VulcanEngine.IR.Ast.Task.AstStagingContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Container" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExecuteSQL" type="VulcanEngine.IR.Ast.Task.AstExecuteSqlTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ETL" type="VulcanEngine.IR.Ast.Task.AstEtlRootNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExecutePackage" type="VulcanEngine.IR.Ast.Task.AstExecutePackageTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StoredProc" type="VulcanEngine.IR.Ast.Task.AstStoredProcNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Merge" type="VulcanEngine.IR.Ast.Task.AstMergeTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReadPersistentVariable" type="VulcanEngine.IR.Ast.Task.AstReadPersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="WritePersistentVariable" type="VulcanEngine.IR.Ast.Task.AstWritePersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CommitPersistentVariable" type="VulcanEngine.IR.Ast.Task.AstCommitPersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaskTemplateInstance" type="VulcanEngine.IR.Ast.Task.AstTaskTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ForLoop" type="VulcanEngine.IR.Ast.Task.AstForLoopContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RetryContainer" type="VulcanEngine.IR.Ast.Task.AstRetryContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstStagingContainerTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Tables" type="AstTableBaseNode_AstStagingContainerTaskNode_Tables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ExecuteDuringDesignTime" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableBaseNode_AstStagingContainerTaskNode_Tables_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Table" type="VulcanEngine.IR.Ast.Table.AstTableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CloneTable" type="VulcanEngine.IR.Ast.Table.AstTableCloneNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TableTemplateInstance" type="VulcanEngine.IR.Ast.Table.AstTableTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableColumnBaseNode_AstTableNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Keys" type="AstTableKeyBaseNode_AstTableNode_Keys_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Sources" type="AstTableSourceBaseNode_AstTableNode_Sources_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Lookups" type="AstEtlFragmentNode_AstTableNode_Lookups_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Indexes" type="AstTableIndexNode_AstTableNode_Indexes_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CustomExtensions" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="LateArriving" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EmitVersionNumber" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchemaName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="CompressionType" type="VulcanEngine.IR.Ast.Table.TableCompressionType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableColumnBaseNode_AstTableNode_Columns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Table.AstTableColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TableReference" type="VulcanEngine.IR.Ast.Table.AstTableColumnTableReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="HashedKey" type="VulcanEngine.IR.Ast.Table.AstTableHashedKeyColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Dimension" type="VulcanEngine.IR.Ast.Table.AstTableColumnDimensionReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MultiColumnTableReference" type="VulcanEngine.IR.Ast.Table.AstMultipleColumnTableReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="MultiColumnDimensionReference" type="VulcanEngine.IR.Ast.Table.AstMultipleColumnDimensionReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstPermissionNode_AstSecurableNode_Permissions_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Permission" type="VulcanEngine.IR.Ast.AstPermissionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstPermissionNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Action" type="VulcanEngine.IR.Ast.PermissionActionType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Target" type="VulcanEngine.IR.Ast.PermissionTargetType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PrincipalName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstFactTableColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableColumnTableReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies Table.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ForeignKeyNameOverride" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EnforceForeignKeyConstraint" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableHashedKeyColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConstraintName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies referenced constraint name.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableColumnDimensionReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="DimensionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies Dimension.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ForeignKeyNameOverride" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EnforceForeignKeyConstraint" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstMultipleColumnTableReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstMappedTableColumnReferenceNode_AstMultipleColumnTableReferenceBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the name of a table to reference.  This creates a column matching the type of the primary key of the referenced table and also creates a foreign key constraint on the referenced table.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ForeignKeyNameOverride" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConstraintName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EnforceForeignKeyConstraint" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstMappedTableColumnReferenceNode_AstMultipleColumnTableReferenceBaseNode_Columns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Table.AstMappedTableColumnReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstMappedTableColumnReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ColumnName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstMultipleColumnDimensionReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstMappedTableColumnReferenceNode_AstMultipleColumnTableReferenceBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="DimensionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Specifies the name of a dimension to reference.  This creates a column matching the type of the primary key of the dimension and also creates a foreign key constraint on the referenced dimension.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ForeignKeyNameOverride" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConstraintName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EnforceForeignKeyConstraint" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTableKeyBaseNode_AstTableNode_Keys_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Identity" type="VulcanEngine.IR.Ast.Table.AstTableIdentityNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PrimaryKey" type="VulcanEngine.IR.Ast.Table.AstTablePrimaryKeyNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UniqueKey" type="VulcanEngine.IR.Ast.Table.AstTableUniqueKeyNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstTableSourceBaseNode_AstTableNode_Sources_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="StaticSource" type="VulcanEngine.IR.Ast.Table.AstTableStaticSourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentNode_AstTableNode_Lookups_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Lookup" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Inputs" type="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Inputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Outputs" type="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Outputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Ignores" type="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Ignores_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Transformations" type="AstTransformationNode_AstEtlFragmentNode_Transformations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Inputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Input" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="PathColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Outputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Output" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentPathColumnDeclarationNode_AstEtlFragmentNode_Ignores_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Ignore" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstTransformationNode_AstEtlFragmentNode_Transformations_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="DerivedColumns" type="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnListNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Destination" type="VulcanEngine.IR.Ast.Transformation.AstDestinationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IsNullPatcher" type="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OleDBCommand" type="VulcanEngine.IR.Ast.Transformation.AstOleDBCommandNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Sort" type="VulcanEngine.IR.Ast.Transformation.AstSortNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermLookup" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConditionalSplit" type="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Multicast" type="VulcanEngine.IR.Ast.Transformation.AstMulticastNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Lookup" type="VulcanEngine.IR.Ast.Transformation.AstLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LateArrivingLookup" type="VulcanEngine.IR.Ast.Transformation.AstLateArrivingLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Scd" type="VulcanEngine.IR.Ast.Transformation.AstSlowlyChangingDimensionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EtlFragmentReference" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UnionAll" type="VulcanEngine.IR.Ast.Transformation.AstUnionAllNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuerySource" type="VulcanEngine.IR.Ast.Transformation.AstQuerySourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="XmlSource" type="VulcanEngine.IR.Ast.Transformation.AstXmlSourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstLateArrivingLookupNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Inputs" type="AstLookupInputOutputNode_AstLateArrivingLookupNode_Inputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Outputs" type="AstLookupInputOutputNode_AstLateArrivingLookupNode_Outputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstLookupInputOutputNode_AstLateArrivingLookupNode_Inputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Input" type="VulcanEngine.IR.Ast.Transformation.AstLookupInputOutputNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstLookupInputOutputNode_AstLateArrivingLookupNode_Outputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Output" type="VulcanEngine.IR.Ast.Transformation.AstLookupInputOutputNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstSlowlyChangingDimensionNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Query" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="CurrentRowWhere" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Mappings" type="AstScdTypeColumnMappingNode_AstSlowlyChangingDimensionNode_Mappings_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="EnableInferredMember" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="FailOnFixedAttributeChange" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="FailOnLookupFailure" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="IncomingRowChangeType" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="InferredMemberIndicator" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="UpdateChangingAttributeHistory" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstScdTypeColumnMappingNode_AstSlowlyChangingDimensionNode_Mappings_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Mapping" type="VulcanEngine.IR.Ast.Transformation.AstScdTypeColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstScdTypeColumnMappingNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="QueryColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MappingType" type="VulcanEngine.IR.Ast.Transformation.ScdColumnMappingType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Inputs" type="AstEtlFragmentPathColumnMappingNode_AstEtlFragmentReferenceNode_Inputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Outputs" type="AstEtlFragmentPathColumnMappingNode_AstEtlFragmentReferenceNode_Outputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="EtlFragmentName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentPathColumnMappingNode_AstEtlFragmentReferenceNode_Inputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Input" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnMappingNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="SourcePathColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DestinationPathColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstEtlFragmentPathColumnMappingNode_AstEtlFragmentReferenceNode_Outputs_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Output" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstTableIndexNode_AstTableNode_Indexes_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Index" type="VulcanEngine.IR.Ast.Table.AstTableIndexNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstDimensionNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Attributes" type="AstAttributeNode_AstDimensionNode_Attributes_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Relationships" type="AstAttributeRelationshipNode_AstDimensionNode_Relationships_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="AttributeHierarchies" type="AstDimensionHierarchyNode_AstDimensionNode_AttributeHierarchies_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableColumnBaseNode_AstTableNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Keys" type="AstTableKeyBaseNode_AstTableNode_Keys_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Sources" type="AstTableSourceBaseNode_AstTableNode_Sources_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Lookups" type="AstEtlFragmentNode_AstTableNode_Lookups_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Indexes" type="AstTableIndexNode_AstTableNode_Indexes_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CustomExtensions" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="LateArriving" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchemaName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EmitVersionNumber" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="CompressionType" type="VulcanEngine.IR.Ast.Table.TableCompressionType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstAttributeNode_AstDimensionNode_Attributes_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Attribute" type="VulcanEngine.IR.Ast.Dimension.AstAttributeNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstAttributeRelationshipNode_AstDimensionNode_Relationships_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Relationship" type="VulcanEngine.IR.Ast.Dimension.AstAttributeRelationshipNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstDimensionHierarchyNode_AstDimensionNode_AttributeHierarchies_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Hierarchy" type="VulcanEngine.IR.Ast.Dimension.AstDimensionHierarchyNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Fact.AstFactNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Measures" type="AstMeasureNode_AstFactNode_Measures_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableColumnBaseNode_AstTableNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Keys" type="AstTableKeyBaseNode_AstTableNode_Keys_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Sources" type="AstTableSourceBaseNode_AstTableNode_Sources_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Lookups" type="AstEtlFragmentNode_AstTableNode_Lookups_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Indexes" type="AstTableIndexNode_AstTableNode_Indexes_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CustomExtensions" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="MeasureGroupName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="AggregationPrefix" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the prefix that will be used for aggregation names throughout the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataAggregation" type="VulcanEngine.IR.Ast.Cube.DataAggregation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies whether persisted and cached data can be aggregated. Allowed settings are None (aggregation is not performed), DataAggregatable (persisted data is aggregatable), CacheAggregatable (cached data is aggregatable) and DataAndCacheAggregatable (both persisted data and cached data are aggregatable).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Description" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Describes the parent element. This value cannot contain leading/trailing spaces or control characters.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ErrorConfiguration" type="VulcanEngine.IR.Ast.Cube.SsasErrorConfiguration" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the ErrorConfiguration</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="EstimatedRows" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the estimated number of child rows represented by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="EstimatedSize" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the estimated size (inbytes) of the parent element. This value is read-only.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="IgnoreUnrelatedDimensions" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>This Boolean setting specifies whether unrelated dimensions are forced to their top level when members of unrelated dimensions are included in a query.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ProactiveCaching" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the ProactiveCaching</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ProcessingMode" type="VulcanEngine.IR.Ast.Cube.ProcessingMode" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates whether indexing and aggregation takes place during or after processing. The default setting is Regular (both are performed during processing). The other allowed setting is LazyOptimizations (both are performed after processing).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="ProcessingPriority" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the processing priority of the parent object during background operations, such as lazy aggregation, indexing, or clustering.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StorageMode" type="VulcanEngine.IR.Ast.Cube.StorageMode" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the OLAP storage mode for the parent element. Allowed values are MOLAP (multidimensional), ROLAP (relational), and HOLAP (hybrid).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="MeasureGroupType" type="VulcanEngine.IR.Ast.Measure.MeasureGroupType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type for the MeasureGroup. Allowed values are Regular, ExchangeRate, Sales, Budget, FinancialReporting, Marketing and Inventory.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Visible" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the visibility of the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DefaultMeasureName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Contains an MDX expression defining the default measure for a Cube or Perspective element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="StorageLocation" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the file system storage location of the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="LateArriving" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchemaName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EmitVersionNumber" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="CompressionType" type="VulcanEngine.IR.Ast.Table.TableCompressionType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstMeasureNode_AstFactNode_Measures_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Measure" type="VulcanEngine.IR.Ast.Fact.AstMeasureNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableCloneNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstTableColumnBaseNode_AstTableNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Keys" type="AstTableKeyBaseNode_AstTableNode_Keys_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Sources" type="AstTableSourceBaseNode_AstTableNode_Sources_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Lookups" type="AstEtlFragmentNode_AstTableNode_Lookups_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Indexes" type="AstTableIndexNode_AstTableNode_Indexes_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CustomExtensions" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="CloneKeys" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="CloneIndexes" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="NullClonedColumns" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="CloneStaticSources" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="LateArriving" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SchemaName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="CompressionType" type="VulcanEngine.IR.Ast.Table.TableCompressionType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableTemplateInstanceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentMappingNode_AstTableTemplateInstanceNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TemplateName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTemplateArgumentMappingNode_AstTableTemplateInstanceNode_Arguments_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Argument" type="VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="ArgumentName" type="xs:string" use="optional">
          <xs:annotation>
            <xs:documentation></xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Inputs" type="AstTaskflowInputPathNode_AstTaskflowPrecedenceConstraintsNode_Inputs_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="And" name="LogicalType" type="VulcanEngine.IR.Ast.Task.LogicalOperationType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTaskflowInputPathNode_AstTaskflowPrecedenceConstraintsNode_Inputs_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Input" type="VulcanEngine.IR.Ast.Task.AstTaskflowInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskflowInputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="OutputPathName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Constraint" name="EvaluationOperation" type="VulcanEngine.IR.Ast.Task.TaskEvaluationOperationType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Success" name="EvaluationValue" type="VulcanEngine.IR.Ast.Task.TaskEvaluationOperationValue" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Expression" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTaskEventHandlerNode_AstTaskNode_Events_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Event" type="VulcanEngine.IR.Ast.Task.AstTaskEventHandlerNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskEventHandlerNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="EventType" type="VulcanEngine.IR.Ast.Task.EventType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstExecuteSqlTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="1" maxOccurs="1" name="Query" type="VulcanEngine.IR.Ast.Task.AstExecuteSqlQueryNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Results" type="AstExecuteSqlParameterMappingTypeNode_AstExecuteSqlTaskNode_Results_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="ExecuteDuringDesignTime" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="None" name="ResultSet" type="VulcanEngine.IR.Ast.Task.ExecuteSqlResultSet" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstExecuteSqlParameterMappingTypeNode_AstExecuteSqlTaskNode_Results_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Result" type="VulcanEngine.IR.Ast.Task.AstExecuteSqlParameterMappingTypeNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstEtlRootNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Transformations" type="AstTransformationNode_AstEtlRootNode_Transformations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTransformationNode_AstEtlRootNode_Transformations_List">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Lookup" type="VulcanEngine.IR.Ast.Transformation.AstLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="XmlSource" type="VulcanEngine.IR.Ast.Transformation.AstXmlSourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DerivedColumns" type="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnListNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Destination" type="VulcanEngine.IR.Ast.Transformation.AstDestinationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IsNullPatcher" type="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OleDBCommand" type="VulcanEngine.IR.Ast.Transformation.AstOleDBCommandNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Sort" type="VulcanEngine.IR.Ast.Transformation.AstSortNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermLookup" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConditionalSplit" type="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Multicast" type="VulcanEngine.IR.Ast.Transformation.AstMulticastNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UnionAll" type="VulcanEngine.IR.Ast.Transformation.AstUnionAllNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuerySource" type="VulcanEngine.IR.Ast.Transformation.AstQuerySourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Scd" type="VulcanEngine.IR.Ast.Transformation.AstSlowlyChangingDimensionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LateArrivingLookup" type="VulcanEngine.IR.Ast.Transformation.AstLateArrivingLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EtlFragmentReference" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransformationTemplateInstance" type="VulcanEngine.IR.Ast.Transformation.AstTransformationTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="RowCount" type="VulcanEngine.IR.Ast.Transformation.AstRowCountNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstTransformationTemplateInstanceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentMappingNode_AstTransformationTemplateInstanceNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TemplateName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTemplateArgumentMappingNode_AstTransformationTemplateInstanceNode_Arguments_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Argument" type="VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstRowCountNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="InputPath" type="VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="VariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstExecutePackageTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="RelativePath" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PackageName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>PackageName</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstStoredProcNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstStoredProcColumnNode_AstStoredProcNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Body" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstStoredProcNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="ExecuteDuringDesignTime" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstStoredProcColumnNode_AstStoredProcNode_Columns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Task.AstStoredProcColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstStoredProcColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="false" name="IsOutput" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="0" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsReadOnly" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstPermissionNode_AstStoredProcNode_Permissions_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Permission" type="VulcanEngine.IR.Ast.AstPermissionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstMergeTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstMergeColumnNode_AstMergeTaskNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="SourceTableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="TargetConstraintName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DisableScd" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="UnspecifiedColumnDefaultUsageType" type="VulcanEngine.IR.Ast.Task.MergeColumnUsage" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="TableLock" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstMergeColumnNode_AstMergeTaskNode_Columns_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Column" type="VulcanEngine.IR.Ast.Task.AstMergeColumnNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstMergeColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ColumnUsage" type="VulcanEngine.IR.Ast.Task.MergeColumnUsage" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstReadPersistentVariableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PersistentVariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="TargetVariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstWritePersistentVariableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PersistentVariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SourceVariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Commit" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstCommitPersistentVariableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="PersistentVariableName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskTemplateInstanceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentMappingNode_AstTaskTemplateInstanceNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TemplateName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTemplateArgumentMappingNode_AstTaskTemplateInstanceNode_Arguments_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Argument" type="VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstForLoopContainerTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="InitializerExpression" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="LoopTestExpression" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CountingExpression" type="xs:string">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstRetryContainerTaskNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="RetryCount" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="BreakOnError" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstPackageBaseNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Type" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstPackageNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Type" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
	<xs:attribute name="PackagePassword" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
	<xs:attribute default="DontSaveSensitive" name="ProtectionLevel" type="VulcanEngine.IR.Ast.Task.ProtectionLevel" use="optional">
	<xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
	</xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstPackageTemplateInstanceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentMappingNode_AstPackageTemplateInstanceNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Variables" type="AstVariableNode_AstContainerTaskNode_Variables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstContainerTaskBaseNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PrecedenceConstraints" type="VulcanEngine.IR.Ast.Task.AstTaskflowPrecedenceConstraintsNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Events" type="AstTaskEventHandlerNode_AstTaskNode_Events_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TemplateName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Log" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LogConnectionName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Join" name="TransactionMode" type="VulcanEngine.IR.Ast.Task.ContainerTransactionMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Linear" name="ConstraintMode" type="VulcanEngine.IR.Ast.Task.ContainerConstraintMode" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="DelayValidation" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Serializable" name="IsolationLevel" type="VulcanEngine.IR.Ast.Task.IsolationLevel" use="optional">
      <xs:annotation>
        <xs:documentation>Sets the Isolation Level which controls how Transactions behave for this container.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTemplateArgumentMappingNode_AstPackageTemplateInstanceNode_Arguments_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Argument" type="VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstSingleOutSourceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="true" name="ValidateExternalMetadata" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies ValidateExternalMetadata.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="IgnoreFailure" name="DefaultErrorRowDisposition" type="VulcanEngine.IR.Ast.Transformation.ErrorRowDisposition" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstMultipleColumnTableReferenceBaseNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Columns" type="AstMappedTableColumnReferenceNode_AstMultipleColumnTableReferenceBaseNode_Columns_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ForeignKeyNameOverride" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ConstraintName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="EnforceForeignKeyConstraint" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Type" type="VulcanEngine.IR.Ast.ColumnType" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the type of the attribute. A complete list of allowed types is available at http://msdn.microsoft.com/de-de/library/ms127023(SQL.90).aspx.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Length" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Length.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Precision" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Precision.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="-1" name="Scale" type="xs:integer" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Scale.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="CustomType" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies CustomType.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Computed" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Computed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Default" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies Default Value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Update" name="ScdType" type="VulcanEngine.IR.Ast.Table.ScdType" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="IsNullable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstSchemaNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="CustomExtensions" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="ConnectionName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="true" name="Emit" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableBaseNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Permissions" type="AstPermissionNode_AstSecurableNode_Permissions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.PersistentVariables.AstPersistentVariableNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TypeCode" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstTemplateNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Argument" type="VulcanEngine.IR.Ast.AstTemplateArgumentNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstTemplateArgumentNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstTaskTemplateNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="AstTaskNode_AstTaskTemplateNode_Tasks_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTaskNode_AstTaskTemplateNode_Tasks_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Staging" type="VulcanEngine.IR.Ast.Task.AstStagingContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Container" type="VulcanEngine.IR.Ast.Task.AstContainerTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExecuteSQL" type="VulcanEngine.IR.Ast.Task.AstExecuteSqlTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ETL" type="VulcanEngine.IR.Ast.Task.AstEtlRootNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ExecutePackage" type="VulcanEngine.IR.Ast.Task.AstExecutePackageTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StoredProc" type="VulcanEngine.IR.Ast.Task.AstStoredProcNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Merge" type="VulcanEngine.IR.Ast.Task.AstMergeTaskNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ReadPersistentVariable" type="VulcanEngine.IR.Ast.Task.AstReadPersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="WritePersistentVariable" type="VulcanEngine.IR.Ast.Task.AstWritePersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CommitPersistentVariable" type="VulcanEngine.IR.Ast.Task.AstCommitPersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaskTemplateInstance" type="VulcanEngine.IR.Ast.Task.AstTaskTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstPackageTemplateNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Package" type="VulcanEngine.IR.Ast.Task.AstPackageNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PackageTemplateInstance" type="VulcanEngine.IR.Ast.Task.AstPackageTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstTransformationTemplateNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Transformations" type="AstTransformationNode_AstTransformationTemplateNode_Transformations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="AstTransformationNode_AstTransformationTemplateNode_Transformations_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="DerivedColumns" type="VulcanEngine.IR.Ast.Transformation.AstDerivedColumnListNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Destination" type="VulcanEngine.IR.Ast.Transformation.AstDestinationNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IsNullPatcher" type="VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OleDBCommand" type="VulcanEngine.IR.Ast.Transformation.AstOleDBCommandNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Sort" type="VulcanEngine.IR.Ast.Transformation.AstSortNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TermLookup" type="VulcanEngine.IR.Ast.Transformation.AstTermLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ConditionalSplit" type="VulcanEngine.IR.Ast.Transformation.AstConditionalSplitNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Multicast" type="VulcanEngine.IR.Ast.Transformation.AstMulticastNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Lookup" type="VulcanEngine.IR.Ast.Transformation.AstLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LateArrivingLookup" type="VulcanEngine.IR.Ast.Transformation.AstLateArrivingLookupNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Scd" type="VulcanEngine.IR.Ast.Transformation.AstSlowlyChangingDimensionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="XmlSource" type="VulcanEngine.IR.Ast.Transformation.AstXmlSourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UnionAll" type="VulcanEngine.IR.Ast.Transformation.AstUnionAllNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuerySource" type="VulcanEngine.IR.Ast.Transformation.AstQuerySourceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransformationTemplateInstance" type="VulcanEngine.IR.Ast.Transformation.AstTransformationTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EtlFragmentReference" type="VulcanEngine.IR.Ast.Transformation.AstEtlFragmentReferenceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableTemplateNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Table" type="VulcanEngine.IR.Ast.Table.AstTableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="CloneTable" type="VulcanEngine.IR.Ast.Table.AstTableCloneNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Dimension" type="VulcanEngine.IR.Ast.Dimension.AstDimensionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Fact" type="VulcanEngine.IR.Ast.Fact.AstFactNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="TableTemplateInstance" type="VulcanEngine.IR.Ast.Table.AstTableTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Arguments" type="AstTemplateArgumentNode_AstTemplateNode_Arguments_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Task.AstParameterMappingTypeNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.AstRootNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Connections" type="AstConnectionNode_AstRootNode_Connections_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Tables" type="AstTableBaseNode_AstRootNode_Tables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Dimensions" type="AstDimensionNode_AstRootNode_Dimensions_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Facts" type="AstFactNode_AstRootNode_Facts_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Packages" type="AstPackageBaseNode_AstRootNode_Packages_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Schemas" type="AstSchemaNode_AstRootNode_Schemas_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Principals" type="AstPrincipalNode_AstRootNode_Principals_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="PersistentVariables" type="AstPersistentVariableNode_AstRootNode_PersistentVariables_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Templates" type="AstTemplateNode_AstRootNode_Templates_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="AstConnectionNode_AstRootNode_Connections_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Connection" type="VulcanEngine.IR.Ast.Connection.AstConnectionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstTableBaseNode_AstRootNode_Tables_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Table" type="VulcanEngine.IR.Ast.Table.AstTableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CloneTable" type="VulcanEngine.IR.Ast.Table.AstTableCloneNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TableTemplateInstance" type="VulcanEngine.IR.Ast.Table.AstTableTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstDimensionNode_AstRootNode_Dimensions_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Dimension" type="VulcanEngine.IR.Ast.Dimension.AstDimensionNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstFactNode_AstRootNode_Facts_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Fact" type="VulcanEngine.IR.Ast.Fact.AstFactNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstPackageBaseNode_AstRootNode_Packages_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Package" type="VulcanEngine.IR.Ast.Task.AstPackageNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PackageTemplateInstance" type="VulcanEngine.IR.Ast.Task.AstPackageTemplateInstanceNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstSchemaNode_AstRootNode_Schemas_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Schema" type="VulcanEngine.IR.Ast.Table.AstSchemaNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstPrincipalNode_AstRootNode_Principals_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Principal" type="VulcanEngine.IR.Ast.Table.AstPrincipalNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstPersistentVariableNode_AstRootNode_PersistentVariables_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="PersistentVariable" type="VulcanEngine.IR.Ast.PersistentVariables.AstPersistentVariableNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="AstTemplateNode_AstRootNode_Templates_List">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="TaskTemplate" type="VulcanEngine.IR.Ast.Task.AstTaskTemplateNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PackageTemplate" type="VulcanEngine.IR.Ast.Task.AstPackageTemplateNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TransformationTemplate" type="VulcanEngine.IR.Ast.Transformation.AstTransformationTemplateNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TableTemplate" type="VulcanEngine.IR.Ast.Table.AstTableTemplateNode">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Transformation.AstDataflowInputPathNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="OutputPathName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Dimension.AstAttributeColumnNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute default="None" name="DataMimeType" type="VulcanEngine.IR.Ast.Cube.SsasDataMimeType" use="optional">
      <xs:annotation>
        <xs:documentation>Where applicable, specifies the Multipurpose Internet Mail Extensions (MIME) type of the data represented by the parent DataItem element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="DataFormat" type="VulcanEngine.IR.Ast.Cube.SsasDataFormat" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the formatting requirements of the DataItem element. The default setting is “none.” Allowed settings are Microsoft Excel formats and the string values TrimRight, TrimLeft, TrimAll, and TrimNone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Collation" type="VulcanEngine.IR.Ast.Cube.SsasCollation" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies the collation method used by the parent element.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Right" name="Trimming" type="VulcanEngine.IR.Ast.Cube.SsasTrimming" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how data from the data source will be trimmed. The default setting is Right. Other allowed settings are Left, LeftRight, and None.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Preserve" name="InvalidXMLCharacterProcessing" type="VulcanEngine.IR.Ast.Cube.SsasInvalidXmlCharacterProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Determines how invalid XML characters in the source data will be handled. Preserve retains the character, Remove deletes them, and Replace inserts a question mark (?) in the place of each invalid character.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="Automatic" name="NullProcessing" type="VulcanEngine.IR.Ast.Cube.SsasNullProcessing" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies how null values will be processed. The default setting is Automatic. Other allowed settings are Preserve (which preserves the null value), Error (which generates a null key error, UnknownMember (which generates an unknown member as well as a null conversion error) and ZeroOrBlank (which converts the null value to zero in numeric data items, and a blank string in string data items).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ColumnName" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VulcanEngine.IR.Ast.Table.AstTableReferenceNode">
    <xs:all minOccurs="1" maxOccurs="1">
      <xs:element minOccurs="0" maxOccurs="1" name="Annotations" type="AstAnnotationNode_AstNode_Annotations_List">
        <xs:annotation>
          <xs:documentation></xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="TableName" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation></xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="Vulcan" type="VulcanEngine.IR.Ast.AstRootNode" />
</xs:schema>